export type Theme = 'light' | 'dark';

export interface Settings {
  version: string;
  openMode: 'current' | 'newtab';
  iconSize: 'sm' | 'md' | 'lg';
  iconPx?: number; // 新增：图标像素大小，优先于 iconSize
  showName: boolean;
  fabEnabled: boolean; // 是否启用跨标签页浮动按钮组
  // 新增：浮动按钮组基于边缘锚点的固定位置（跨页面一致）。
  // ax: 水平锚点；ay: 垂直锚点；ox/oy: 距对应边的像素偏移
  // 兼容旧版：可能存在 legacy 字段 fabPos: { left, top }
  fabPlacement?: { ax: 'left'|'right'; ay: 'top'|'bottom'; ox: number; oy: number };
  // 新增：Dock 快捷栏固定的书签 ID 列表（顺序即为展示顺序）
  dockIds?: string[];
  // 新增：Dock 列表最后更新时间戳（毫秒），用于并发合并时的优先级判断
  dockStamp?: number;
  defaultSearchId: string;
  theme: Theme;
  // 用户自定义项
  columns: number; // 网格列数
  radius: number;  // 圆角半径，单位 px
  cardOpacity?: number; // 卡片透明度（0.2~1），未设置时按主题默认：dark=0.5, light=0.96
  contentMaxWidth?: number; // 内容最大宽度，单位 px
  backgroundDataUrl?: string; // 自定义背景（本地 dataURL），优先于默认背景
  backgroundOverlay?: number; // 背景遮罩不透明度，0-0.6
  backgroundBlur?: number;    // 背景模糊像素，0-20
  backgroundPosition?: 'center' | 'top' | 'bottom' | 'left' | 'right';
  backgroundSize?: 'cover' | 'contain' | 'auto' | 'tile';
}

export interface SearchEngine {
  id: string;
  name: string;
  template: string; // 包含 %s
  builtin?: boolean;
  icon?: string; // 本地 dataURL 图标
}

export interface Bookmark {
  id: string;
  title: string;
  url: string;
  icon?: string;   // favicon 或自定义
  color?: string;
  groupId?: string;
  order?: number;
  createdAt: number;
  updatedAt: number;
}

export interface Group {
  id: string;
  name: string;
  order?: number;
  collapsed?: boolean;
  icon?: string;
}

export interface StorageModel {
  settings: Settings;
  engines: SearchEngine[];
  bookmarks: Bookmark[];
  groups: Group[];
}

export const ROOT_STORAGE_KEY = 'localGce';
